console: true
verbose: true
pprof-port: -1
jaeger: "foo"
service-name: "bar"
metrics: ":8000"
aliveTime: 0s
gcInterval: 1m0s
workHome: /tmp/dragonfly/dfdaemon/
workHomeMode: 0700
cacheDir: /var/cache/dragonfly/
cacheDirMode: 0700
logDir: /var/log/dragonfly/
pluginDir: /tmp/dragonfly/dfdaemon/plugins/
dataDir: /var/lib/dragonfly/
dataDirMode: 0700
keepStorage: false
scheduler:
  manager:
    enable: false
    netAddrs:
      - type: tcp
        addr: 127.0.0.1:65003
    refreshInterval: 5m
    seedPeer:
      enable: false
      type: strong
      clusterID: 2
      keepAlive:
        interval: 10s
  netAddrs:
    - type: tcp
      addr: 127.0.0.1:8002
  scheduleTimeout: 0
  disableAutoBackSource: true

host:
  hostname: d7y.io
  advertiseIP: 0.0.0.0
  location: 0.0.0.0
  idc: d7y

download:
  calculateDigest: true
  defaultPattern: p2p
  pieceDownloadTimeout: 30s
  totalRateLimit: 1024Mi
  perPeerRateLimit: 512Mi
  downloadGRPC:
    security:
      insecure: true
      caCert: ./testdata/certs/ca.crt
      cert: ./testdata/certs/sca.crt
      key: ./testdata/certs/sca.key
      tlsVerify: true
      tlsConfig: null
    unixListen:
      socket: /tmp/dfdaemon.sock
  peerGRPC:
    security:
      insecure: true
      caCert: ./testdata/certs/ca.crt
      cert: ./testdata/certs/sca.crt
      key: ./testdata/certs/sca.key
      tlsVerify: true
      tlsConfig: null
    tcpListen:
      listen: 0.0.0.0
      port: 65000
  transportOption:
    dialTimeout: 1s
    keepAlive: 1s
    maxIdleConns: 1
    idleConnTimeout: 1s
    responseHeaderTimeout: 1s
    tlsHandshakeTimeout: 1s
    expectContinueTimeout: 1s
  getPiecesMaxRetry: 1
  prefetch: true
  watchdogTimeout: 1s
  concurrent:
    thresholdSize: 1
    thresholdSpeed: 1
    goroutineCount: 1
    initBackoff: 1
    maxBackoff: 1
    maxAttempts: 1
upload:
  rateLimit: 1024Mi
  security:
    insecure: true
    caCert: ./testdata/certs/ca.crt
    cert: ./testdata/certs/sca.crt
    key: ./testdata/certs/sca.key
    tlsVerify: true
  tcpListen:
    listen: 0.0.0.0
    port: 65002

objectStorage:
  enable: true
  filter: Expires&Signature&ns
  maxReplicas: 3
  security:
    insecure: true
    caCert: ./testdata/certs/ca.crt
    cert: ./testdata/certs/sca.crt
    key: ./testdata/certs/sca.key
    tlsVerify: true
  tcpListen:
    listen: 0.0.0.0
    port: 65004

storage:
  diskGCThreshold: 60m
  diskGCThresholdPercent: 0.6
  dataPath: /tmp/storage/data
  taskExpireTime: 3m0s
  strategy: io.d7y.storage.v2.simple
  multiplex: true
health:
  path: "/health"

proxy:
  basicAuth:
    username: "foo"
    password: "bar"
  defaultFilter: "baz"
  defaultTag: "tag"
  defaultApplication: "application"
  maxConcurrency: 1
  security:
    insecure: true
    caCert: ./testdata/certs/ca.crt
    cert: ./testdata/certs/sca.crt
    key: ./testdata/certs/sca.key
    tlsVerify: true
    tlsConfig: null
  tcpListen:
    listen: 0.0.0.0
    port: 65001
  registryMirror:
    url: https://index.docker.io
    insecure: true
    direct: false
    useProxies: true
    dynamic: true
  extraRegistryMirrors:
    - url: https://index.docker.io
      insecure: true
      direct: true
      useProxies: true
      dynamic: true
  proxies:
    - regx: blobs/sha256.*
      useHTTPS: false
      direct: false
      redirect: d7y.io
  hijackHTTPS:
    cert: ./testdata/certs/sca.crt
    key: ./testdata/certs/sca.key
    hosts:
      - regx: mirror.aliyuncs.com:443
        insecure: true
  whiteList:
    - host: "foo"
      regx: "blobs/sha256.*"
      ports:
        - "1000"
        - "2000"
  dumpHTTPContent: true
reload:
  interval: 3m0s

security:
  autoIssueCert: true
  caCert: -----BEGIN CERTIFICATE-----
  tlsVerify: true
  tlsPolicy: force
  certSpec:
    dnsNames:
      - foo
    ipAddresses:
      - 0.0.0.0
    validityPeriod: 1s

network:
  enableIPv6: true

announcer:
  schedulerInterval: 1s

networkTopology:
  enable: true
  probe:
    interval: 20m
